package com.bolehui.domain.po;

import com.baomidou.mybatisplus.annotation.*;
import com.bolehui.base.domain.entity.AbstractBaseEntity;
import com.bolehui.base.enums.GenderTypeEnum;
import com.bolehui.base.enums.UserTypeEnum;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.*;

/**
 * @author chendongjie     email:chendongjie@gz.iscas.ac.cn
 * @version 1.0
 * @ClassName UserPO
 * @Description 用户实体类
 * @createTime 2024/11/29 9:28
 * Copyright (C) 2021-2022 CASEEDER, All Rights Reserved.
 * 注意：本内容仅限于内部传阅，禁止外泄以及用于其他的商业目的
 */
@EqualsAndHashCode(callSuper = true)
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "sys_user")
public class UserPO extends AbstractBaseEntity  {

    /**
     * 性别
     * @see GenderTypeEnum
     */
    // private GenderTypeEnum sex;// 性别 0:女，1:男
    /**
     * 用户类型
     * @see com.bolehui.base.enums.UserTypeEnum
     */
    // private UserTypeEnum userType;// 用户类型：0：求职者，1：企业，2：管理员


    /**
     * 身份证号码
     */
    // private String idNumber;
    // private Long companyId; // 所属公司id
    // private Long resumeId; // 简历id
    // private Long fileId; // 附件id
    /**
     * 用户id
     */
    @TableId(value = "user_id", type = IdType.AUTO) // 使用数据库自增主键
    private Long userId;
    /**
     * 部门ID
     */
    private Long deptId;

    private String userName; //登录名. 登录名必须是唯一的.
    private String nickName; //用户名. 用户名不必是唯一的.
    /**
     * 密码
     */
    private String password;
    /**
     * 手机号码
     */
    @TableField("phonenumber")
    private String phoneNumber;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 性别
     */
    private String sex;
    /**
     * 头像地址
     */
    private String avatar;
    /**
     * 用户类型
     */
    @EnumValue
    private UserTypeEnum userType;
    private String age;

    @JsonIgnore
    public boolean isAdmin()
    {
        return isAdmin(this.getUserId());
    }
    public static boolean isAdmin(Long userId)
    {
        return userId != null && 1L == userId;
    }
}
